1. Field of the Invention
The present invention relates to the field of data communications networks. More particularly, this invention relates to a method and apparatus for resolving Domain Name Service requests in a data communications network.
2. The Background
The Service Selection Gateway (SSG) is a product which allows data communications network users to select and login to services available on the data communications network. These services can include computer intranets, pay per use sites, the Internet, community of interest services and the like. The SSG permits a user to simultaneously log in to a plurality of such services, even if they have overlapping IP address space.
Each service to which a user may be connected has an associated IP (Internet Protocol) address space. That is, a certain range of addresses may address that space. The range may be contiguous, discontiguous, or a combination of both. For example, Corp A may have an intranet service having all IP addresses which start with xe2x80x9c10.1xe2x80x9dxe2x80x94this may be denoted xe2x80x9c10.1.x.xxe2x80x9d where x can be any value. It may also be denoted xe2x80x9c10.1.0.0; 255.255.0.0xe2x80x9d where xe2x80x9c10.1.0.0xe2x80x9d represents the IP address and xe2x80x9c255.255.0.0xe2x80x9drepresents the subnet mask. Those of skill in the art will recognize that a 255 in the subnet mask field represents a binary 1111 1111 and amounts to a requirement that the corresponding field of the IP address must match bit for bit in order to achieve a match. On the other hand, a 0 in the subnet mask field represents a binary 0000 0000 and amounts to no requirement for any match. For example, a service having an address space of xe2x80x9c0.0.0.0; 0.0.0.0xe2x80x9d represents the Internet, i.e., all IP addresses are within this space. Note that since the subnet mask is 0.0.0.0 the IP address could be set to any value and it would yield the same result.
In data communications networks a domain name service (DNS) is used to resolve textual domain name strings, such as xe2x80x9cCORPA.COMxe2x80x9d, into numerical IP addresses which can be used to route packets to and from such domains. A DNS system typically includes a hierarchy of DNS servers distributed throughout the network. A DNS request is generated, for example, by a user running an Internet browser application program on a computer. The DNS request is then forwarded to a DNS server associated with the user""s account as often determined by settings set in software (typically the user""s operating system) by the user. If the DNS request can be handled at that level, the numerical IP address is passed back to the user""s application. If not, the request is passed to a superior DNS service, and so on.
Where the user is logged into more than one service, more than one DNS service may be available to service the user""s DNS requests. This leads to a conflict. In some cases one of the DNS services will be xe2x80x9cbetterxe2x80x9d to use than another in that it may be more likely to quickly resolve the DNS request, however, the settings in the user""s operating system may undesirably direct the DNS request packet to the xe2x80x9cwrongxe2x80x9d DNS service. Accordingly, it would be desirable to provide a method and apparatus for resolving where to forward DNS requests from a user with more than one concurrent service connection on a data communications network.
A method and apparatus for resolving where to forward DNS (domain name service) requests for a user simultaneously logged into more than one service existing on a data communications network utilizes an active service list (ASL) to keep track of the services that the user is currently logged into. The active service list includes a list of services sorted in a particular order based on information about the service and sometimes the order in which the user logged into the services. Each service has a profile that defines, among other things, the IP Address space for the service and a Domain attribute. To determine the appropriate service and, therefore, the appropriate DNS server for a DNS request, the QName from the DNS request is compared to the configured Domain attribute(s) for each service in the order of the ASL. If a match is found, then the DNS request packet is modified to re-direct the DNS request to the DNS server configured for the matched service. If no domain match is found and the user is logged into an Internet Service, then the DNS request packet is modified to re-direct the DNS request to the DNS server configured for the first Internet Service found in the user""s ASL. If no domain match is found and the user is not logged into an active Internet Service, then the DNS request is not re-directed, but rather forwarded unmodified.